iT邦幫忙

0

透過VPN降低遊戲連線延遲 - 簡易解決方案(1)

  • 分享至 

  • xImage
  •  

自從宿舍網路的ISP從中華電信光世代換成台灣智慧光網之後,雖然網路品質確實不怎麼種花了,但唯獨在黎明死線(Dead by Daylight,以下簡稱DBD)內連日服的延遲飆到~90ms(正常延遲大概會在50~60ms左右)。

有玩這個遊戲的就知道,只要延遲高就很容易發生"億些"令人不悅的狀況。雖然應該是在今年開始DBD在台灣會自動連到港服(延遲大概~30ms),但我自己還是比較喜歡連到日服玩(關於怎麼選伺服器之後再寫文章記錄),所以決定著手處理這個狀況。

分析狀況

從網路上搜尋可以得知黎明死線所使用的伺服器是Amazon AWS的Gamelift。在Amazon GameLift endpoints and quotas頁面可以得知日本東京伺服器的區域屬於ap-northeast-1,並且提供測試延遲用的Endpoint。

Pinging gamelift.ap-northeast-1.amazonaws.com [52.119.218.82] with 32 bytes of data:
Reply from 52.119.218.82: bytes=32 time=77ms TTL=240
Reply from 52.119.218.82: bytes=32 time=75ms TTL=240
Reply from 52.119.218.82: bytes=32 time=76ms TTL=240
Reply from 52.119.218.82: bytes=32 time=76ms TTL=240

Ping statistics for 52.119.218.82:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 75ms, Maximum = 77ms, Average = 76ms

得出延遲約在70~80ms(正常約在~40ms左右),比遊戲內的延遲少了~20ms,推測是測試節點與實際伺服器的路由差異,或是延遲測試封包不同(吧)。

由於狀況是在換ISP之後發生的,因此原因很明顯就是:
宿網ISP(台灣智慧光網)在台灣至日本Amazon AWS的路由發生了問題。

解決方案

路由問題除了找ISP客訴(然後等到天荒地老)以外,也可以使用VPN來解決。

  1. 付費VPN、GPN:最快也最方便的方法--花錢消災。更甚者可以付費訂閱GPN來取得專門為地區伺服器優化的路由。但對於手頭較緊(a.k.a. 我),這筆開銷能省則省,更何況在日常使用中也只有玩DBD時有這個問題。
  2. 免費公用VPN:諸如VPN Gate以及VPN Jantit等免費公用VPN都可以,但是建議選用Windows內建VPN支援的協議(IKEv2、SSTP、L2TP/IPsec及PPTP),才不必下載客戶端,也比較好進行手動設定。

透過VPN Gate連線至AWS

VPN Gate是日本筑波大學為學術研究目的所建立的全球公用VPN服務。
VPN連線的方式可參考VPN Gate提供的教學,在Windows上若要直接使用Windows內建的VPN連線,建議使用L2TP/IPsec協議

進階操作-設定不使用VPN連線作為預設閘道

事實上到上面為止,只要照著步驟做,剛剛所設定的VPN Gate已經可以順利運作了。
不過由於公用VPN的安全性較低,不適合在上面傳遞敏感資訊(比如你喜歡一邊玩遊戲一邊繳帳單就會很危險),且透過VPN連線時整台電腦的網路速度也會受到VPN限制。因此透過手動設定路由的方式來讓電腦只在連線到特定主機時透過VPN進行連線。
開啟VPN(左)與正常(右)網速比較
開啟VPN(左)與正常(右)網速比較

首先先取得VPN的閘道位址。在命令提示字元中執行ipconfig.exe /all,找到VPN的連線介面卡中的預設閘道。但是很有可能會出現跟我一樣的狀況:

PPP adapter VPNGate Japan:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : VPNGate Japan
   Physical Address. . . . . . . . . :
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 10.245.55.3(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 0.0.0.0
   DNS Servers . . . . . . . . . . . : 10.245.254.254
                                       8.8.8.8
   NetBIOS over Tcpip. . . . . . . . : Enabled

在預設閘道那一欄可能會是空白或者0.0.0.0,應該是Windows的老Bug。雖然是可以根據微軟的說明解決,但由於每次開關VPN都有可能會出現這個問題,所以我比較推薦用下面的方法直接把閘道位址找出來:
使用TRACERT.EXE任意trace一個公用固定IP(如Google DNS的8.8.8.8、Cloudflare DNS的1.1.1.1等)並且觀察第一個跳躍點的IP位址。例如:

C:\>TRACERT.EXE -d 8.8.8.8

Tracing route to 8.8.8.8 over a maximum of 30 hops

  1   101 ms   106 ms   217 ms  10.245.254.254
  2   414 ms     *      295 ms  219.100.37.253
  3   154 ms    92 ms    78 ms  202.222.12.190
  4    86 ms    90 ms   109 ms  202.222.12.33
  5   349 ms     *       56 ms  150.99.184.33
  6    98 ms    63 ms    61 ms  150.99.10.187
  7   104 ms    99 ms   130 ms  210.171.224.96
  8   384 ms   528 ms   448 ms  108.170.248.251
  9   302 ms   291 ms   193 ms  172.253.75.97
 10   215 ms   269 ms   279 ms  8.8.8.8

Trace complete.

觀察第一個跳躍點,得出10.245.254.254即為該VPN的閘道。

在新增的VPN上點一下展開,選擇 [進階選項] > [更多VPN內容] 左邊的 [編輯] 按鈕。

在彈出的對話框選擇上面的 [網路] 標籤 [網際網路協議第4版(TCP/IPv4)] > [內容] 。在彈出的對話框上點選 [進階] 按鈕。

取消勾選 [使用遠端網路的預設閘道] ,點選確定儲存設定(每個對話框都要點確定)。

在開啟VPN的狀況下再次測速,可以發現預設不再使用VPN進行連線。

接下來就可以手動設定電腦在連線至哪些位址時要使用VPN閘道連線。

以Amazon提供的東京Endpoint為例,在撰文的當下其對應的IP位址為54.239.96.159。
系統管理員身分執行 命令提示字元,輸入:

ROUTE.EXE ADD [目標IP範圍] [VPN閘道位址]
C:\>ROUTE.EXE ADD 54.239.96.159 10.245.254.254
 OK!

這樣電腦在連線至54.239.96.159時就會透過VPN連線了。

中場休息

到目前為止已經知道如何使用VPN來連線至目標主機,但是後面還有更多的內容(或者說,坑)沒辦法在一篇文章內寫完。
下一篇來記錄如何透過腳本自動取得Amazon AWS的IP範圍並設定路由(終於要進入程式環節了:))。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
bluegrass
iT邦高手 1 級 ‧ 2024-09-13 14:30:51

其實不用弄這麼多東西, 一個PROXY就可以了

Proxy 還支持部份DNS代理

結果就是可以大陸國內一個BROSWER用GOOGLE.

另一個BROSWER用BAIDU, Youku 看影片也沒有版權問題.

https://ithelp.ithome.com.tw/upload/images/20240913/20102031xb4tGgcqya.png

icedragon iT邦新手 5 級 ‧ 2024-09-13 16:01:18 檢舉

當初做的時候沒想到還有代理伺服器這個方法XD,而且主要是想要自己架個OpenVPN看看。
不過我會再研究研究Proxy這條路的可行性的。

我要留言

立即登入留言